#include "GA_Exception.h"

const char* Unsupported_template_exception::what() const throw()
{
    return "Unsupported template specialization.";
}

const char* Unsupported_environment_exception::what() const throw()
{
    return "Invalid environment requested.";
}

const char* Environment_not_configured_exception::what() const throw()
{
    return "This environment has not been configured yet.";
}

const char* Invalid_element_exception::what() const throw()
{
	return "The specified element is invalid.";
}

const char* Invalid_solution_size_exception::what() const throw()
{
	return "The solutions provided do not have the same size or are size 0.";
}

const char* Invalid_file_exception::what() const throw()
{
	return "The provided filename or path is invalid.";
}

const char* Invalid_configuration_exception::what() const throw()
{
	return "The provided configuration parameters are invalid.";
}

const char* Invalid_size_exception::what() const throw()
{
	return "The size of the provided element is invalid.";
}

const char* No_environment_set_exception::what() const throw()
{
	return "No environment has been set for this worker.";
}

const char* No_crossover_set_exception::what() const throw()
{
	return "No crossover has been set for this worker.";
}

const char* Unsupported_job_type_exception::what() const throw()
{
	return "The current job type is unsupported.";
}

const char* Worker_not_idle_exception::what() const throw()
{
	return "This worker has been issued a task but is not idle.";
}

const char* Worker_already_registered_exception::what() const throw()
{
	return "This worker has already been registered with the framework.";
}

const char* Worker_not_registered_exception::what() const throw()
{
	return "This worker has not been registered with the framework.";
}

const char* Unsupported_selection_exception::what() const throw()
{
    return "This selection type is invalid.";
}

const char* Unsupported_crossover_exception::what() const throw()
{
    return "This crossover type is invalid.";
}

const char* Invalid_index_exception::what() const throw()
{
    return "The provided index is out of bounds.";
}

const char* Buffer_undersized_exception::what() const throw()
{
    return "The provided buffer is too small.";
}

const char* Deserialization_exception::what() const throw()
{
    return "An error occurred during deserialization.";
}

const char* Serialization_exception::what() const throw()
{
    return "An error occurred during Serialization.";
}
